home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / isetl.arc / scan.t < prev    next >
Text File  |  1987-08-20  |  1KB  |  45 lines

  1. program words;
  2.     letters := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  3.  
  4.     print "Enter a string";
  5.     read sentence;
  6.     while sentence /= "" do
  7.     print sentence;
  8.  
  9.     print [sentence(i..j):
  10.            c=sentence(i), j in [i.. #sentence]
  11.            | c in letters
  12.               and (i=1 or sentence(i-1) notin letters)
  13.           and sentence(j) in letters
  14.           and (j=#sentence or sentence(j+1) notin letters)
  15.           and (forall e in sentence(i..j) | e in letters)
  16.           ];
  17.  
  18.     words := [];
  19.     while exists c in sentence | c in letters do
  20.         i := %min({i: c = sentence(i) | c in letters});
  21.         sentence := sentence(i..);
  22.         if exists c in sentence | c notin letters 
  23.         then j := %min({j: c = sentence(j) 
  24.                         | c notin letters})
  25.                 - 1;
  26.         else j := #sentence;
  27.         end;
  28.         words := words + [sentence(1..j)];
  29.         sentence := sentence(j+1..);
  30.     end;
  31.  
  32.     print words;
  33.     print "Enter a string";
  34.     read sentence;
  35.  
  36.     end;
  37. end;
  38.  
  39. "here is a string";
  40. "    leading blanks in this one";
  41. "   trailing blanks here    ";
  42. "  extra    spaces    everywhere     ";
  43. "non-letters break words too...too bad";
  44. "";
  45.